function Person(name, age, friend) {
  // this = stu;
  this.name = name;
  this.age = age;
  this.friends = friend;
}

Person.prototype.eating = function () {
  console.log(this.name + "在吃饭");
};

function Student(name, age, friend, sno) {
  Person.call(this, name, age, friend);
  this.sno = sno;
}

Student.prototype = new Person();

Student.prototype.studying = function () {
  console.log(this.name + "在学习");
};

var stu = new Student("frank", 18, ["kobe"], 120);

console.log(stu);
stu.eating();

// stu.studying();

// 原型链实现继承的弊端
// 1. 打印stu对象，继承的属性是看不到的
// console.log(stu);

// 2. 创建出两个对象，对象原型上的数据是互通的
// var stu1 = new Student();
// var stu2 = new Student();

// stu1.name = "kobe";
// console.log(stu2.name);

// 获取引用，修改引用种的值，会互相影响
// stu1.friends.push("kobe");
// console.log(stu1.friends);
// console.log(stu2.friends);

// 3. 在前面实现类的过程中都没有传递参数
